1. LNMP介绍
和LAMP唯一不同的是,LNMP中的N指的是Nginx(类似Apache的一种Web服务软件)。目前这种环境的应用也非常多。Nginx设计的初衷是提供一种快速、高效、多并发的Web服务软件。在静态页面的处理上,Nginx较Apache更胜一筹;但在动态页面的处理上,Nginx并不比Apache有优势。但是目前还是有很多爱好者对Nginx比较热衷。随着Nginx技术的逐渐成熟,它在Web服务软件领域的地位也会越来越高。
2. 安装MySQL
LNMP中MySQL的安装步骤和LAMP一样,这里简单地叙述一下过程,在这里以MySQL5.6版本为例,如下所示:
需要修改的地方有datadir=/data/mysql
(即前面步骤中初始化数据库时定义的目录)。把启动脚本加入到系统服务向,设定开机启动并启动MySQL,如下所示:
查看MySQL是否启动的命令如下:
3. 安装PHP
在安装PHP之前先要声明一下,针对Nginx的PHP安装和LAMP中PHP的安装是有区别的。因为Nginx中的PHP是以fastcgi
的方式结合Nginx的,可以理解为Nginx代理了PHP的fastcgi
,而httpd是把PHP作为自己的模块来调用的。
PHP的官方下载地址为:(http://www.php.net/downloads.php)[http://www.php.net/downloads.php]。这在里建议使用PHP5.6版本。
3.1. 下载PHP源码包
下载PHP5.6版本的源码包,命令如下:
3.2. 解压源码包,创建账号
解压下载的PHP5.6版本的源码包,并创建相应的用户,命令如下:
创建的php-fpm
账号是用来运行php-fpm
服务的。在LNMP环境中,PHP以一个服务php-fpm
的形式出现,独立存在于Linux系统中,方便管理。
3.3. 配置编译选项
配置编译选项,命令如下:
说明:
- 编译参数和LAMP中的PHP编译参数不一样,多了
--enable-fpm
,如果不加该参数,则不会有php-fpm执行文件生成,更不能启动php-fpm服务。还多了一些和fpm相关的配置参数。 - 在配置过程中,如果出现问题,参考LAMP学习笔记中所记录的问题和解决办法。但是对于一台最小化安装的新机器来说要安装这些:
yum install -y libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel libmcrypt-devel libjpeg-devel libcurl-devel
- 其实只是比在LAMP中PHP的安装中的问题多了下面的问题,参考下面的解决办法:
- 问题:
configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/
- 解决办法:
yum install -y libcurl-devel
- 问题:
3.4. 编译PHP
成功的配置编译参数后,就需要进行编译了,命令如下:
在这一步,可能也会遇到问题。比如下面的几个问题:
问题1:
1234/usr/bin/ld: TSRM/.libs/TSRM.o: undefined reference to symbol 'pthread_sigmask@@GLIBC_2.2.5'/usr/lib64/libpthread.so.0: error adding symbols: DS0 missing from command linecollect2: error: ld returned 1 exit statusmake: *** [sapi/cli/php] 错误1解决方法如下:
12[root@localhost php-5.6.30]问题2:
- 修复完上面的问题后继续make,又遇到错误:12clloect2: error: ld returned 1 exit statusmake: *** [sapi/cli/php] 错误1
- 修复完上面的问题后继续make,又遇到错误:
解决方法如下:
1[root@localhost php-5.6.30]
3.5. 安装PHP
安装PHP,命令如下:
以上的每一个步骤,如果没有完全执行正确,其下一步是无法进行的。判断执行是否正确的方法为,
echo $?
的结果是否为0
。
3.6. 修改配置文件
修改配置文件,命令如下:
把以下内容写入到该文件中:
保存配置文件后,检验配置是否正确的方法如下:
如果显示test is successful
,则说明配置没有问题,否则就要根据提示检查配置文件。
3.7. 启动php-fpm
启动php-fpm,命令如下:
设置php-fpm开机启动的命令:chkconfig php-fpm on
检测php-fpm是否启动的命令:pa sux | grep php-fpm | grep -v grep
。执行这条命令后,可以看到启动了很多个进程。(大概二十多个)
4. 安装Nginx
从Nginx的官方网站(http://nginx.org)可以看到Nginx的更新速度很快,这说明目前使用Nginx的用户越来越多了。但是不建议安装最新版本的Nginx,因为新版本难免会有一些bug或者漏洞。在本实验中使用stable版本1.10作为安装演示。
4.1. 下载和解压Nginx
下载和解压Nginx,命令如下:
4.2. 配置编译选项
配置编译选项,命令如下:
遇到了一个错误:
解决方法:
再重新配置编译选项
用echo $?
检查上一步骤是否正确执行。若正确,继续,否则重新排查问题。
4.3. 编译和安装Nginx
编译和安装Nginx,命令如下:
因为Nginx的安装文件比较小,所以很快就会安装完,而且也不会出什么错误。
4.4. 编写Nginx启动脚本,并加入到系统服务
编写Nginx启动脚本:vim /etc/init.d/nginx
,写入如下内容:
保存该脚本后更改权限,并加入到系统服务列表里面,设置成开机启动。命令如下:
4.5. 更改Nginx的配置文件
首先把原来的配置文件清空,命令如下:
Nginx的配置内容如下:
关于配置文件各个参数的含义,先不解释,其实很多配置都可以根据字面意思猜到含义。保存配置文件后,需要先检验一下是否有错误,命令如下:
显示如上两行便是配置正确,否则要根据错误提示修改配置文件。
该配置文件可以作为一个模板,你也可以用在你的服务器上,以后工作中也可以作为参考。
4.6. 启动Nginx
启动Nginx,命令如下:
如果不能启动,请查看/etc/local/nginx/logs/error.log
文件。
检查Nginx是否成功启动的命令:ps aux | grep nginx | grep -v grep
4.7. 测试是否正确解析PHP
首先创建测试文件,操作方法如下:
执行如下命令测试文件:
上面显示的内容说明PHP解析正常。
到此LNMP的环境就搭建安装完毕了。只是还没有做一些基础的设置和优化配置。